﻿using System;
using System.Net;
using Net.Common;

namespace Net.Server
{
    [Obsolete("请直接继承ClientPeerBase实现你的客户端对等端类型")]
    public class NetPlayer : ClientPeerBase
    {
    }

    [Obsolete("请直接继承SceneBase<T>实现你的服务器场景类型")]
    public class NetScene<T> : SceneBase<T> where T : ClientPeerBase, new()
    {
    }

    public abstract partial class ServerBase<Client, Scene>
    {
        [Obsolete("请使用SceneTick属性代替")]
        public uint SyncSceneTime { get => SceneTick; set => SceneTick = value; }

        [Obsolete("请使用Call方法发送 --如果使用之前的await等待的Call方法, 请改为Request方法, 服务器回应请使用Response方法!", true)]
        public void Send(Client client, string func, params object[] pars) => Call(client, func, pars);

        [Obsolete("请使用Call方法发送 --如果使用之前的await等待的Call方法, 请改为Request方法, 服务器回应请使用Response方法!", true)]
        public void SendRT(Client client, string func, params object[] pars) => Call(client, func, pars);
    }
}

namespace Net.Client
{
    public partial class ClientBase
    {
        /// <summary>
        /// 当从服务器获取的客户端地址点对点
        /// </summary>
        [Obsolete("此事件已弃用", true)]
        public Action<IPEndPoint> OnP2PCallback { get; set; }

        [Obsolete("请使用NetworkTick进行网络更新")]
        public void SingleNetworkProcessing() => NetworkTick();

        [Obsolete("请使用Call方法发送 --如果使用之前的await等待的Call方法, 请改为Request方法, 服务器回应请使用Response方法!", true)]
        public void Send(string func, params object[] pars) => Call(func, pars);

        [Obsolete("请使用Call方法发送 --如果使用之前的await等待的Call方法, 请改为Request方法, 服务器回应请使用Response方法!", true)]
        public void SendRT(string func, params object[] pars) => Call(func, pars);
    }
}

namespace Net.Component
{
    [Obsolete("直接继承Net.Common.OperCommand实现")]
    public class Command : OperCommand
    {
    }
}